home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swaga_c.zip / CURSOR.SWG / 0021_Better Cursor Control.pas < prev    next >
Pascal/Delphi Source File  |  1994-05-25  |  1KB  |  39 lines

  1. {
  2. A much better more reliable method is just to set the CURRENT cursor's bit
  3. 5 to disable it, then mask it back off again...
  4. }
  5. unit cursor; {Public domain, by Sean Palmer}
  6.  
  7. interface
  8.  
  9. var maxSize:byte;
  10.  
  11.  procedure cursorOn;
  12.  procedure cursorOff;
  13.  procedure setSize(scans:byte);  {set size from bottom, or 0 for off}
  14.  procedure detect;     {get max scan lines by reading current cursor}
  15.  
  16. implementation
  17.  
  18. procedure cursorOn;assembler;asm
  19.  mov ah,3; mov bh,0; int $10; and ch,not $20; mov ah,1; int $10;
  20.  end;
  21.  
  22. procedure cursorOff;assembler;asm
  23.  mov ah,3; mov bh,0; int $10; or ch,$20; mov ah,1; int $10;
  24.  end;
  25.  
  26. procedure setSize(scans:byte);var t:byte;begin
  27.  if scans=0 then t:=$20 else t:=maxSize-scans;
  28.  asm mov ah,1; mov bh,0; mov ch,t; mov cl,maxSize; dec cl; int $10; end;
  29.  end;
  30.  
  31. {call whenever you change text cell height}
  32. procedure detect;assembler;asm  {do NOT call while cursor's hidden}
  33.  mov ah,3; mov bh,0; int $10; inc cl; mov maxSize,cl;
  34.  end;
  35.  
  36. begin
  37.  detect;
  38.  end.
  39.